package com.tedu.api.io;

import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.Imaging;
import org.junit.Test;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 图片
 *
 * Apache Commons Imaging第三方库 聊天室  斗图
 * 提供图片读写操作，处理格式：jpg、png、tiff、gif等
 * 1.项目结构Maven---在线下载jar[压缩包--很多类--包导入]
 * 2.准备一张小图片
 * https://mvnrepository.com/
 * 知道maven仓库网站--->百度,搜:mvn仓库 API仓库坐标:【理解为ar的下载链接]---粘 到pom.xml文件中
 * <dependency>
 * <groupId>org.apache.commons</groupId>
 * <artifactId>commons-imaging</artifactId>
 * <version>1.0-alpha2</version>
 * </dependency>
 * 第三方库---高手提供好类库:图片格式、图片大小等!
 */
public class ImageFile {
/**
 * Apache Commons Imaging
 * 读操作：可以读取到宽度、高度、像素信息等
  */
@Test
    public void testImageR() throws IOException, ImageReadException {
    //File 文件：获取文件路径
    File file=new File("2.png");
    //读取图片文件信息
    BufferedImage bi=Imaging.getBufferedImage(file);
    //打印 2.png宽高
    int width= bi.getWidth();
    int height= bi.getHeight();
    System.out.println("图片宽："+width+"图片高："+height);
}

    /**
     * Apache Commons Imaging
     * 写操作：先进行读操作，然后写出图片
     * Imaging图片类：静态写出方法
     * Imaging.writeImage(读入图片，写出图片，指定图片格式，null)
     * 指定图片格式:ImageFormats 图片格式类--静态属性
     * BufferedImage 缓冲图片流--高效传输图片
     */
    @Test
    public void testImageW() throws IOException, ImageReadException, ImageWriteException {
    //读入图片
        File file=new File("2.png");
        BufferedImage src=Imaging.getBufferedImage(file);
    //写出图片
        File desc=new File("写出图片.png");
        Imaging.writeImage(src,desc, ImageFormats.PNG,null);
        System.out.println("写出成功");




}
}
